export interface PageRequest<T = any> {
  current: number;
  size: number;
  query: T;
}

export interface PageResponse<T> {
  current: number;
  size: number;
  total: number;
  records: T[];
}

export interface AssetPageRequest {
  clientId: string;
  assetCode: string;
  assetName: string;
  assetFloor: string;
  assetAddress: string;
  tagStatus: string;
  inventoryStatus: string;
}

/** 登录接口参数 */
export interface LoginParams {
  password?: string;
  username?: string;
}

/** 登录接口返回值 */
export interface LoginResult {
  accessToken: string;
}

export interface SysColumnsResponse {
  title: string;
  dataIndex: string;
  key: string;
  width: number;
  align: string;
}

export interface SysClientResponse {
  id: string;
  clientName: string;
}

export interface AssetDetailResponse {
  id: string;
  assetCode: string;
  assetName: string;
  epc: string;
  assetFloor: string;
  assetAddress: string;
  clientName: string;
  image: string;
  color: string;
  size: string;
  brand: string;
  tagStatus: string;
  inventoryStatus: string;
  inventoryTime: string;
  remark: string;
}

export interface AssetInventoryDetailResponse {
  assetId: string;
  assetCode: string;
  currentName: string;
  epc: string;
  currentFloor: string;
  currentAddress: string;
  image: string;
  currentColor: string;
  currentSize: string;
  currentBrand: string;
  tagStatus: string;
  inventoryStatus: string;
  syncStatus: string;
  inventoryBy: string;
  inventoryTime: string;
  syncTime: string;
  changeField: string;
  remark: string;
}

export interface AssetLifecycleVo {
  id: string;
  eventType: string;
  eventContent: string;
  eventOperator: string;
  createTime: string;
}

export interface AssetPageResponse {
  id: string;
  assetCode: string;
  assetName: string;
  assetFloor: string;
  assetAddress: string;
  assetStatus: string;
  color: string;
  size: string;
  brand: string;
  image: string;
  remark: string;
  clientId: string;
  clientName: string;
  tagStatus: string;
  inventoryStatus: string;
  inventoryTime: string;
  extendField1: string;
  extendField2: string;
  extendField3: string;
  extendField4: string;
  extendField5: string;
  extendField6: string;
  extendField7: string;
  extendField8: string;
  extendField9: string;
  createTime: string;
  updateTime: string;
}

export interface ProjectPageRequest {
  clientId: string;
  projectName: string;
  status: string;
}

export interface ProjectPageResponse {
  id: string;
  projectName: string;
  clientName: string;
  status: string;
  qty: ProjectQtyResponse;
}

export interface ProjectQtyResponse {
  total: number;
  counted: number;
  uncounted: number;
  added: number;
}

export interface AssetRelationRequest {
  clientId: string;
  assetCode: string;
  epc: string;
}

export interface AssetRelationResponse {
  id: string;
  clientName: string;
  assetCode: string;
  epc: string;
}
